package com.example.teesystem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.teesystem.common.utils.Response;
import com.example.teesystem.entity.ExamPaper;
import com.example.teesystem.entity.vo.PageRequestVo;
import com.example.teesystem.entity.vo.exam.ExamUpdateVo;
import com.example.teesystem.entity.vo.examEvaluation.EvaluationUpdateVo;
import com.example.teesystem.entity.vo.examEvaluation.ExamEvaluationInsertVo;
import com.example.teesystem.entity.vo.examPaper.*;

import java.text.ParseException;
import java.util.Map;

/**
* @author NieYaShi
* @description 针对表【t_exam_paper】的数据库操作Service
* @createDate 2022-04-11 09:14:07
*/
public interface ExamPaperService extends IService<ExamPaper> {
    Response addExamPaper(ExamPaperInsertVo examPaperInsertVo);
    Response getExamPaperList(ExamPaperSelectVo examPaperSelectVo);
    Response releaseExamPaper(Integer paperId);
    Response getRandomIssue(IntelligentPaperCreateVo intelligentPaperCreateVo);
    Response deleteExamPaper(Integer id);
    Response updateExamPaper(ExamPaperUpdateVo1 examPaperUpdateVo1);
    Response undoExamPaper(Integer id);
    Response previewExamPaper(Integer id);
    Response finishMarkSingleStudentPaper(ExamEvaluationInsertVo examEvaluationInsertVo);
    Response getMarkedPaperMessage(Integer paperId, Integer studentId);
    Response updateMarkedIssue(ExamUpdateVo examUpdateVo);
    Response publishMarkedPaper(Integer classId, Integer paperId);
    Response saveUnMarkedPaper(ExamEvaluationInsertVo examEvaluationInsertVo);
    Response studentGetExamList(PageRequestVo pageRequestVo);
    Response studentGetMarkedPaperMessage(Integer paperId);
    Response unPublishExamPaper(Integer paperId, Integer studentId);
    float getScorePropertyByPaperId(Integer paperId, Integer studentId);
    Response getPaperRepetitionRate(Integer currentPaperId, Integer selectPaperId);
    Response updateExamPaperMessage(EvaluationUpdateVo evaluationUpdateVo);
    Response getPaperMessageList(Integer courseId);
    Response getHistoryPaperList();
    Response getMarkedPaperMessageList(Integer courseId);
    void updateExamPaper();
    Response finishExamByTeacher(int paperId) throws ParseException;
    Map<String,Integer> getPaperDifferentIssueTypeScoreSum(int paperId);
    Response forecastScore(int paperId);
    Integer getLoginScore();
}
